"""
@name : 3.5zuoye
@author : chenlu
@projectname: pythonProject
"""
import random
dict1 = {}
with open("ips.txt", "a") as fp:
    # 下次运行程序的时候清空ips.txt文件
    fp.truncate(0)
    for i in range(100):
        # 随机产生ip地址的最后一位
        x = random.randint(1, 255)
        fp.write(f'172.25.254.{x}\n')
        # 如果该地址曾经出现过，则次数+1
        if x in dict1:
            # 将得到的地址及其出现次数用字典存储
            dict1[x] = dict1[x] + 1
        # 如果该地址为第一次出现，则次数为1
        else:
            dict1[x] = 1
n = 10
# 将得到的字典按照values值（即ip出现次数）从大到小排序
list1 = sorted(dict1.items(), key=lambda y: y[1], reverse=True)
for i, j in list1:
    n = n - 1
    print(f'出现次数第{10-n}的是172.25.254.{i}，次数为{j}次')
    if n <= 0:
        break

# 词频统计
import string
# 使用utf-8-sig可以避免在文件开头出现\ufeff
with open("Walden.txt", encoding='utf-8-sig') as fp:
    str1 = fp.read()
# 将所有的标点和数字存于字符串biaodian中
biaodian = string.punctuation + '0123456789'
# 依次替换所有的标点和数字
for i in biaodian:
    str1 = str1.replace(i, ' ')
# 当不给split函数传递任何参数时，分隔符sep会采用任意形式的空白字符：空格、tab、换行、回车以及formfeed
list1 = list(str1.split())
dict1 = {}
for j in list1:
    # 将单词全部转换为小写
    x = j.lower()
    # 如果单词已经存入字典，则出现次数+1
    if x in dict1:
        dict1[x] = dict1[x] + 1
    # 如果单词为第一次出现，则为第一次出现
    else:
        dict1[x] = 1
print(dict1)
